/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package weka;



import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author heloina
 */
public class MysqlConection {

    
    /**
     * Url para coneccao ao banco de dados mysql, no formato:
     * jdbc:mysql://host/database
     */
    private String url;
    /**
     * Usuario para acessar o banco de dados.
     */
    private String usuario;
    /**
     * Senha para acessar o banco de dados.
     */
    private String senha;
    /**
     * Coneccao com o banco de dados.
     */
    private Connection conn;
    /**
     * Statement responsavel por executar as consultas sql.
     */
    private Statement stmt;
    /**
     * ResultSet responsavel por guardar os resultados das consultas sql
     */
    private ResultSet rs;

    public MysqlConection(){

    }

    public MysqlConection(String host, String user, String pass, String database){
        this.usuario = user;
        this.senha = pass;
        this.url = "jdbc:mysql://"+host+"/"+database;
    }

    public void conectar(){
        //this.url = "jdbc:mysql://127.0.0.1/scientia";
        //this.usuario = "root";
        //this.senha = "root";

        conn = null;

        //Tenta conectar a base de dados.
        try {
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            conn = DriverManager.getConnection(url, usuario, senha);
            //System.out.println("conectado ao banco de dados.");
        } catch (SQLException ex) {
            System.out.println("SQLException: " + ex.getMessage() + "<br>");
            System.out.println("SQLState: " + ex.getSQLState() + "<br>");
            System.out.println("VendorError: " + ex.getErrorCode() + "<br>");
        } catch (Exception e) {
            System.out.println("Problemas ao tentar conectar com o banco de dados");
        }
    }

    public ResultSet query(String sqlQuery){
        ResultSet result = null;
        //conn e a conexao com o banco de dados.
        if (conn != null) {
            try {
                //statement para execucao das consultas.
                stmt = conn.createStatement();
                //consultar todos os campos da tabela retornando apenas um resultado.
                String query = sqlQuery;
                //executando a consulta.
                stmt.execute(query);
                result = rs;
            } catch (SQLException ex) {
                System.out.println("houve um erro ao executar a query: "+ sqlQuery);
                System.out.println(ex);
            }
        }
        return result;
    }
}
